//////////////////////////////////////////////////////////////////////
//
// NO_TypeQualifier.h header for the $1 class.
//
//////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////
#ifndef NO_TypeQualifier_H
#define NO_TypeQualifier_H

//////////////////////////////////////////////////////////////////////////
#include "NO_Includes.h"

//////////////////////////////////////////////////////////////////////////
enum NO_DLL_TAL NO_Qualifiers
{
	//////////////////////////////////////////////////////////////////////////
	NO_CONST		= (1<<0),
	NO_VOLATILE		= (1<<1),
	NO_STATIC		= (1<<2),
	NO_MUTABLE		= (1<<3),
	NO_PUBLIC		= (1<<4),
	NO_PROTECTED	= (1<<5),
	NO_PRIVATE		= (1<<6),
	NO_EXPLICITE	= (1<<7),
};

//////////////////////////////////////////////////////////////////////////
// class NO_TypeQualifier definition
//////////////////////////////////////////////////////////////////////////
class NO_DLL_TAL NO_TypeQualifier  
{
public:
	//////////////////////////////////////////////////////////////////////
	// con/destruction
	//////////////////////////////////////////////////////////////////////

	//////////////////////////////////////////////////////////////////////
	NO_TypeQualifier(void);

	//////////////////////////////////////////////////////////////////////////
	// modify
	//////////////////////////////////////////////////////////////////////////

	//////////////////////////////////////////////////////////////////////////
	void set(NO_Qualifiers const & rhs);
	void unset(NO_Qualifiers const & rhs);

	//////////////////////////////////////////////////////////////////////////
	void set(NO_UInt8 flags);
	void clear(void);

	//////////////////////////////////////////////////////////////////////////
	// operator
	//////////////////////////////////////////////////////////////////////////

	//////////////////////////////////////////////////////////////////////////
	NO_Boolean operator==(NO_TypeQualifier const & rhs);
	NO_Boolean operator==(NO_Qualifiers const & rhs);
	NO_TypeQualifier& operator=(NO_TypeQualifier const & rhs);
	
private:
	//////////////////////////////////////////////////////////////////////////
	NO_UInt8 flags;
};

#endif 